package main

import (
	"fmt"
	"strings"
	"time"

	"util"
)

var (
	ipCheck   string = "N" //Y or N
	ipAdres   string = ""
	timeLong  int    = 1
	chainType string = "INPUT"
	accPORT   string = "22"
)

func main() {
start:
	fmt.Println("==========开启服务器访问权限=============")
	ipAdres = util.GetNetWorkIp()
	if ipAdres != "" {
		fmt.Printf("程序获取本机ip地址为%s\n正确:Y,错误N\n", ipAdres)
		fmt.Scanln(&ipCheck)
	} else {
		fmt.Print("程序获取ip出错")
	}
	if strings.ToUpper(ipCheck) == "N" {
		for {
			fmt.Print("请手动输入IP地址\n")
			fmt.Scanln(&ipAdres)
			if util.IpReg.MatchString(ipAdres) {
				break
			}
			fmt.Print("ip不合法，")
		}
	}
	fmt.Printf("请输入使用时长(默认%d小时)\n", timeLong)
	fmt.Scanln(&timeLong)
	fmt.Printf("请输入Chain Name (默认%s)\n", chainType)
	fmt.Scanln(&chainType)
	fmt.Printf("请输入使用端口 (默认%s 多个端口使用“,”分割) \n", accPORT)
	fmt.Scanln(&accPORT)
	for {
		if util.PortsReg.MatchString(accPORT) {
			break
		}
		fmt.Printf("请输入使用端口 (默认%s 多个端口使用“,”分割) \n", accPORT)
		fmt.Scanln(&accPORT)
	}
	if ok, err := util.SendServerMsg("http://***.***.***.***:11062/pass",
		&util.TaskObj{AccIp: ipAdres,
			ChainType: chainType,
			AccTime:   timeLong,
			StarTime:  time.Now().Unix(),
			AccPORT:   accPORT}); !ok || err != nil {
		fmt.Println("Fail", err)
	} else {
		fmt.Println("Ok")
	}
	fmt.Println("==========END============")
	goto start
}
